<template>
  <!-- 导入excel的路由： -->
  <div class="importExcel">
    <!-- beforeUpload回调函数：读取文件前做点什么 -->
    <uploadExcel :beforeUpload="beforeUpload" :onSuccess="onSuccess" />
  </div>
</template>

<script>
//   导入excel全局组件
import uploadExcel from '@/components/uploadExcel'
// 批量导入员工
import { batchImportEmployee } from '@/api/employees'
export default {
  components: {
    uploadExcel
  },
  methods: {
    // 1.上传文件之前做点什么事：
    // 上传的文件作为参数
    beforeUpload (file) {
      // console.log(file)
      // size:单位是字节。
      if (file.size >= 1024 * 2 * 1000) {
        this.$message.error('上传文件不能超过2M')
        return false
      }
      return true
    },
    // 2.上传文件成功之后的回调函数：
    // 目的：导入excel表格数据，发给服务器请求批量导入数据。

    // 2.1获取数据：
    async onSuccess ({ header, results }) {
      if (this.$route.query.type == 'employees') {
        // console.log(header)
        // console.log(results)

        // 所以我们要对它进行转换，把中文转成对应的英文
        const userRelations = {
          入职日期: 'timeOfEntry',
          手机号: 'mobile',
          姓名: 'username',
          转正日期: 'correctionTime',
          工号: 'workNumber'
        }
        let list = results.map(item => {
          //
          let newObj = {}
          for (let key in item) {
            let englishKey = userRelations[key]

            // 日期处理：因为excel表格数据导入进去之后，时间会变成一个整数（代表天数）
            if (key == '入职日期' || key == '转正日期') {
              //
              let excelTime = item[key]
              let date = new Date((excelTime - 1) * 24 * 60 * 60 * 1000)
              let year = date.getFullYear()
              date.setFullYear(year - 70)
              newObj[englishKey] = date
            } else {
              // 把每一行表格数据的key赋值给英文的key。
              newObj[englishKey] = item[key]
            }
          }
          return newObj
        })

        // 2.2获取数据后，发情请求批量导入
        // 把读取到的excel数据发给后台
        let res = await batchImportEmployee(list)
        console.log(res)
        this.$message.success('批量导入成功！')
        this.$router.back()
      }
    }
  }
}
</script>

<style></style>
